Geometric robotic platform

ABSTRACT

Various aspects of methods, systems, and use cases include a robotic system and control or use of the robotic system. A method for autonomous movement of the robotic system may include receiving a target location, identifying robotic components of the robotic system that are in contact with a surface, and determining a robotic component of the robotic components to activate to cause the robotic system to move closer to the target location. The method may include activating, based on the determination, a motor of the robotic component to push against the surface to cause the robotic system to move towards the target location.

BACKGROUND

Robots may be programmed to complete complex tasks. Typically, robotsare programmed using software to control hardware, for example using arobotic control system. Many different types of robots exist to servevarious uses, such as in space, under water, in manufacturing, as toys,for household chores, etc.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter suffixes may represent different instances of similarcomponents. The drawings illustrate generally, by way of example, butnot by way of limitation, various examples discussed in the presentdocument.

FIGS. 1A-1B illustrate views of two configurations of a robotic system,in accordance with some examples.

FIGS. 2A-2D illustrate various views and configurations of a roboticcomponent of a robotic system, in accordance with some examples.

FIG. 3 illustrates an exploded view of an example robotic component, inaccordance with some examples.

FIG. 4 illustrates a kinematic technique for robotic system movement, inaccordance with some examples.

FIGS. 5A-5B illustrate a detailed view of activation of a roboticcomponent to initiate movement of a robotic system, in accordance withsome examples.

FIG. 6 illustrates camera coverage of various areas with respect to arobotic system, in accordance with some examples.

FIG. 7 illustrates a camera technique for 3D modeling with a roboticsystem, in accordance with some examples.

FIG. 8 illustrates a discrete path for autonomous movement of a roboticsystem, in accordance with some examples.

FIG. 9A provides an overview of example components for compute deployedat a compute node.

FIG. 9B provides a further overview of example components within acomputing device.

FIG. 10 illustrates a flowchart showing a technique for autonomousmovement of a robotic system having a plurality of independentlymoveable components, in accordance with some examples.

FIG. 11 illustrates training and use of a machine-learning program inaccordance with some examples.

DETAILED DESCRIPTION

The systems and methods described herein may be used for autonomousmovement of a robotic system. A robotic system may include a coredevice, a frame, and a plurality of independently moveable components.The components may be connected to the core device (e.g., physically orcommunicatively) to operate as the robotic system. The components may beremoved from the robotic system.

A component may include a motor, operable to cause an outer surface ofthe component to move outward, away from the core. The outer surface maymove by inflating, telescoping, pushing, etc. In an example, the motorrotates a screw, which pushes on an air bladder, which in turn pushes onthe outer surface, causing the outer surface to telescope outward via aset of connected concentric shapes. The outer surface may have a shape,such as circular, hexagonal, pentagonal, square, triangular, etc. Acomponent may be self-powered, for example including one or morebatteries. A component may include a camera (e.g., a single lens camera,a depth camera, a plurality of cameras, etc.).

The core may operate as a control device for the robotic system. Forexample, the core may include processing circuitry, communicationscircuitry (e.g., for external communications or to communicate with thevarious components), a sensor (e.g., an inertial measurement unit (IMU),a global positioning system (GPS) sensor, or the like). The core maysend control commands to a component, such as to activate a motor of thecomponent. A component may be connected to the core via a port.

The robotic system may be moved using a component. When a particularcomponent activates its motor and causes a surface of the component toextend, the surface may push on the ground or other surface. When thecomponent extends, the robotic system moves in a direction opposite theaxis of extension. The robotic system may be configured such that threeor more components are touching a surface (e.g., the ground). Thesethree components may be evaluated, such as with respect to a targetlocation, to select one of the components to activate to move towardsthe target location.

The robotic system may be used to capture images, such as with a cameraof a component. In some examples, each component of the robotic systemhas its own camera. The camera or cameras may be used to capture imagesof a surrounding environment (e.g., to generate a 360 view from theperspective of the robotic system), capture images of an object (e.g.,which may include depth images, and a three-dimensional (3D) model ofthe object may be generated using the images), or the like.

In an example, the robotic system may be used for robust landexploration (e.g., in harsh or hostile terrain, on another planet,etc.). The robotic system includes a novel robot architecture, which maybe in the shape of a polyhedral, such as an icosahedron. Exteriorvertices of the icosahedron may include a linear motor and a camera inan interior vertex. The robotic system may use a locomotion mechanism tomove over water, in an example. The unique locomotion may have a lowenergetic cost for operation of the robotic system. The robotic systemis robust in that it may be used in different weather conditions. In anexample, the robotic system may cause an object to move when the objecthas a mass of up to 600 kilograms.

In some examples, the robotic system may use cameras of the componentsand computer vision to follow a person, an object (e.g., a car), ananimal, etc. Specific tasks may be implemented with the robotic system,such as moving objects around the house, conducting surveillance (e.g.,around a path, taking pictures or video), taking a 360 image, generatingimages to create a 3D model of an object, or the like.

FIGS. 1A-1B illustrate views of two configurations of a robotic system100, in accordance with some examples. The robotic system 100 includes acore (not visible), a frame 112, and a plurality of components (e.g.,component 102 and 110). The component 102, for example, includes acamera 106, a hexagonal face, including an extendible surface 104, and acharging port 108. The component 110 includes a pentagonal face with anextendible surface. In some examples, each of the plurality ofcomponents may include a camera and a charging port. In other examples,only one, or only some of the plurality of components includes a cameraor a charging port. In a particular example, one or more of thecomponents includes a camera, but only one component includes thecharging portion 108. In this particular example, the component with thecharging port 108 (e.g., in the example shown, component 102) mayreceive power. Other components or the core may be charged using thecomponent with the charging port 108. In some examples, wirelesscharging may be used to charge a component or the core.

The plurality of components may be removeable and interchangeable (forother slots in the frame 112 having a same geometric opening). In FIG.1A, the plurality of components are shown fully inserted into the frame112 and connected to the core. In FIG. 1B, the component 102 is shownremoved from the frame. In this view, a connector 114 of the component102 is visible. The connector 114 may be used to physically connect thecomponent 102 to the core. The connector 114 may be used tocommunicatively couple the component 102 to the core. The connector 114may be locked, such as using a locking mechanism controlled by anapplication run by processing circuitry of the core.

In geometry, a star polyhedron is a polyhedron which has some repetitivequality of nonconvexity giving it a star-like visual quality. In theexample shown in FIG. 1A, the robotic system 100 includes an icosahedronshape where every external vertex has a truncated pyramid associatedwith it. The truncated pyramid shape is shown in FIG. 1B where component102 extends from its face to the connector 114. In an example, the faceof the component 102 is hexagonal or pentagonal, and in other examples,the face may be octagonal, triangular, square, circular, etc. The frame112 may include a structural base to house the core and structuralscaffolding to house the components. In an example, each component mayoperate autonomously or collaboratively, such as to move the roboticsystem 100 towards a goal (e.g., a target location).

In an example, the camera 106 may have a field of view based onarrangement of the component 102 in the robotic system 100. For example,the field of view may include sixty-degrees. When multiple componentseach have a camera, some fields of view of the cameras may overlap.

The component 102 may include processing circuitry. The processingcircuitry may identify a location within the robotic system 100 of thecomponent 102. In some examples, the core may identify positions of thevarious components and communicate those positions to the componentsthemselves. In other examples, each component may identify its locationand optionally share that information with the other components or thecore.

When a component is inserted, an orientation of the component may berestricted, such as to align the connector 114 to a receiving port onthe core, to ensure camera field of view coverage, etc. In otherexamples, orientation may be limited to a set of configurations (e.g.,two orientations). In still other examples, orientation may not belimited. In an example, the connector 114 is a USB (e.g., USB 3.0, 2.0,1.0, etc.) or HDMI connector.

FIGS. 2A-2C illustrate various views and configurations of a roboticcomponent of a robotic system, in accordance with some examples. FIGS.2A-2B and FIG. 2D illustrate more detailed views of the component 102,including the connection 114 and the extendible surface 104.

In an example, a component, such as component 102 may operate indifferent modes. For example, the component 102 may operate in acontrolled mode, an autonomous mode, an idle mode, or the like. In thecontrolled mode, coordination may occur by the core or one of thecomponents of the robotic device. Coordination may include centralplanning, trajectory determination, activation sequence determination,etc., of all motors of the robotic system. In this mode, the componentmay share sensor data with the centralized controller, but otherwise notneed to perform processing. In the autonomous mode, each component mayoperate separately, and communicate to coordinate to achieve a task. Forexample, each component may learn how to act to achieve a common goal,such as reaching a target location. In the idle mode, the component mayoperate at low power, not activate its motor, sleep, or otherwise limitactions.

FIG. 2C illustrates the extendible surface 104 in a fully extendedposition. The extendible surface 104 may telescope out using a layeredset of connected concentric shapes. Each layer of the shapes may have asmaller diameter or perimeter, such that the shapes may fit backtogether to form a surface. Each smaller shape may extend further thanits larger adjacent counterpart. A final smallest shape may have a solidface. The extendible surface 104 may be extended when an internal linearmotor elongates or causes a screw to elongate. A prismatic diaphragm orair bladder may be inflated, pushing air out to the extendible surface104, producing an elongation.

The component 102 may be locked in place in the frame or as connected tothe core. The component 102 may be ejected via the core, such as afterreceiving an instruction from a user device (e.g., an application on aphone or computer), or via a button push (e.g., a button on the frame,on the component, etc.).

Each component may be recharged individually, such as via a chargingport, wireless charging, or by removing the component and charging viathe connector 114. In an example one component may be charged byanother. In an example the core may be charged by a component. In otherexamples, the core may charge a component (e.g., when a componentcharges the core, the core may then in turn charge other components,such that only a single component may have a charging port).

FIG. 3 illustrates an exploded view of an example robotic component 102,in accordance with some examples. The robotic component 102 is shownwith a hexagonal face and extendible surface, but may be any shapedescribed herein in other examples. The number of pieces shown may bechanged based on the geometry of a robotic component. For example, sixbatteries (e.g., 302) are shown with the robotic component 102, butanother number may be used with a different geometry (e.g., five with apentagonal shape, three with a triangular shape, etc., although thenumber of batteries or other pieces does not need to match the dimensionof the face). The robotic component 102 may include fewer pieces thandepicted in FIG. 3, or additional pieces (e.g., a sensor, multipleversions of a piece, such as two cameras, an IMU, etc.).

The robotic component 102 is shown in FIG. 3 having example piecesincluding a frame 304 holding a camera 306 or an ultrasonic sensor orlidar, a membrane 308 that may be extended, and a metallic plaque 310 ordiaphragm used to push the prismatic area of the membrane 308. Therobotic component 102 includes a container frame 312, a set of motorwindings (e.g., 314), a metallic screw 316, the battery 302, and anenvelope frame 318.

Internal components of the robotic component 102 may include at leastfour batteries in an example, such that the robotic component 102 may beindependently powered. Energy may be shared from one robotic component102 to another or to the core in some examples (e.g., some componentsmay have more or fewer batteries, where power is shared).

In an example, when a motor of the robotic component 102 becomesinoperable (e.g., breaks, stops working, batteries are dead, etc.), arobot system may continue working without any issues or changes, as longas that robotic component 102 is on top of the robot. An algorithm formovement may include avoiding use of the inoperable robotic component,such as by avoiding allowing that robotic component to be in contactwith a ground surface. The resiliency of the robotic system may, in someexamples extend to multiple components being inoperable.

The batteries (e.g., 302) may be used to power the motor (e.g., windings314), to turn the screw 316 to push on the metallic plaque 310 or thediaphragm to cause the membrane 308 to expand. The robotic component 102may include a connector, which is not shown in the example in FIG. 3.The connector may connect the robotic component 102 to a core of arobotic system. The connection may be physical, connective, or both.

FIG. 4 illustrates a kinematic technique for robotic system movement, inaccordance with some examples. The kinetic technique illustrated in FIG.4 shows the robotic system moving via an extension of a roboticcomponent of the robotic system. The robotic component initially is notextended in view 402, and progresses to extend further in each of vies404, 406, and 408. In view 410, the robotic component has extended itsextendible surface to a maximum or controlled amount (e.g., an amountdetermined to satisfy a movement criteria, such as to move the roboticsystem towards a target location).

In order to move the robot system, a linear motor of the roboticcomponent may elongate, moving air in the robotic component to push asurface of the robotic component to elongate. Movement may be achievedby a single robotic component inflating, due to the circular shape ofthe robotic system. In some examples, other robotic components mayinflate, such as to provide stability, to move more quickly, to stop therobotic system, or the like. For a soft surface (e.g., sand or dirt),all robotic components touching the soft surface may be extended, atleast a portion (e.g., the axis legs) to create a stable position beforepushing off or to provide support.

An elongation length of a robotic component may be controlled, forexample by an amount the screw 316 of FIG. 3 is turned by the motor. Thescrew 316 may precisely control the elongation, with regard to speed ofextension, length of extension, or both. Control of the speed or lengthof extension may control speed or distance traveled by the roboticsystem.

All three robotic components touching a surface or about to touch asurface may be extended to stop the robotic system. A movement techniquemay be inverted to stop the robotic system, for example by elongating arobotic component opposite of a current movement vector of the roboticsystem. Stopping may be controlled, such that the stopping is gradual.

FIGS. 5A-5B illustrate a detailed view of activation of a roboticcomponent to initiate movement of a robotic system, in accordance withsome examples. FIG. 5A shows three example components 502, 504, and 506at a first view while the robotic system is in motion. FIG. 5B shows theexample components at a second view while the robotic system is inmotion, the second view after the first view. Component 502 in FIG. 5Ais in contact with a surface 508, and then in FIG. 5B, has beenactivated and, after pushing against the surface 508, is no longer incontact with the surface 508. Component 504 is in contact with thesurface 508 in both FIGS. 5A and 5B, and may act as an axis of rotation,a stable point for the robotic system, a future movement component, orthe like.

The component 506 may be a future component in contact with the surface508, for example after movement initiated by the component 502 iscompleted or has started. In FIG. 5B, component 506 is closer to thesurface 508 than in FIG. 5A. After a portion of the movement initiatedby component 502 is completed, component 506 may be in contact withsurface 508. In this example, the components 504 and 506 may be used toinitiate a next movement operation.

FIG. 6 illustrates camera coverage of various areas with respect to arobotic system, in accordance with some examples. A first view 600illustrates different camera effects on various planes or axes, such asplanes 602 and 606, on which the robotic system may capture 360-degreeviews. For plane 604, the robotic system may capture 460 stereo views ofits surroundings. For axes 605 and 607, the robotic system may capturesingle images or videos.

The different view types may be generated based on overlap of field ofview of cameras of the robotic system. For example, in the central plane604, omnidirectional stereo views may be captured using the cameras,which may completely overlap with at least two views. In planes 602 and606, the cameras may be used to capture an omnidirectional view (e.g.,because the cameras have complete coverage of a 360 field of view ofsurroundings, but not necessarily 360 overlapping views).

In view 601, the robotic system is illustrated with has six cameras,which may be used to generate the omnidirectional view of plane 602. Inview 603, the robotic system is illustrated with multiple cameras ofoverlapping views, where an omnidirectional stereo image may begenerated for plane 604. Planes 602, 604, and 606 may move along acertain range according to the size and camera capabilities of therobotic system. For example, plane 602 may extend from a few centimetersabove a surface to within a few centimeters of the plane 604. In someexamples, plane 604 maybe located along a middle band of a fewcentimeters or more.

FIG. 7 illustrates a camera technique for 3D modeling with a roboticsystem, in accordance with some examples. The robotic system may be usedto capture images of an object 710. The captured images may be used toconstruct a 3D model of the object 710. The captured images may beregular images or stereoscopic images in some examples.

In FIG. 7, a robotic device is shown in various positions over time,starting with position 702 and moving through positions 704, 706, and708. Position 708 may be a current position, but not necessarily a lastposition. Position 702 may be an initial position or may be an initialposition for image capture, but not an initial position of the roboticsystem.

The robotic system may operate as a tripod with a camera. The componentsof the robotic system that are acting as a tripod or operating thecamera may change as the positions change. For example, the roboticsystem may continuously move about the object 710, capturing images asit moves. In another example, the robotic system may pause at eachposition to capture an image or images of the object 710. The positions702-708 may be determined such that images captured at these positionsare sufficient to generate a 3D model of the object 710 (e.g., includesufficient overlap or stereoscopic imaging).

FIG. 8 illustrates a discrete path 800 for autonomous movement of arobotic system, in accordance with some examples. The discrete path 800starts at an initial position 802, and tracks a curved path 804, toreach a target position 808. The discrete path 800 is made up of aplurality of movement segments, such as an initial movement segment 806.Each point of the initial position 802 may represent a robotic componentof the robotic system (e.g., a central point of each of three roboticcomponents make up the points of the triangle of initial position 802).A central point of the robotic system may move according to the discretepath 800, along each segment (e.g., segment 806). The robotic system maymove along the initial movement segment 806 based on a robotic componentextending a surface along an axis of the segment 806, but in an oppositedirection (e.g., from point 809).

The robotic system may navigate along the discrete path 800, which maybe towards a target location, along a curved path 804, or may be towardsare target location but with obstacle avoidance along the path. In anexample, only one motor (of a robotic component) need to be activated atthe time. In another example, multiple motors may be activated to stopthe robotic system, to assist with difficult terrain (e.g., sand ordirt), to aid in speeding up the robotic system, or the like.

A kinematics technique for the robotic system may be used. Thekinematics technique includes first determining whether a targetlocation is within its current position (e.g., the initial position802). When the target location is within the current position, then therobotic system may stop. The target location may be a point, an object(e.g., in object follow objectives), an area, or the like. In theexample of FIG. 8, the target location may be within or coincident withthe target position 808.

In an example, x1 (at point 809), x2 (at point 810), and x3 (at point811) are the points of the initial position 802, which represent roboticcomponents in contact with a surface. A set of neighbor points to x1,x2, and x3, are points p1, p2, p3 (not shown). These points (p1, p2, andp3) represent the three next points (robotic components) that touch thefloor depending on which robotic component's motor is activated (of thex1, x2, and x3 robotic components). Stated another way, the points p1,p2, p3 are points opposite each of x1, x2, and x3 when the roboticsystem rotates about one of the axes x1-x2, x2-x3, or x3-x1. In thisexample, p1 may be represented at point 812, where the robotic systemends up after the movement along the initial movement segment 806 basedon activation of the motor of the robotic component at point 809. Afterthe initial movement segment 806, the robotic system has a new set ofthree robotic components touching a surface, namely x2, x3, p1 (atpoints 810, 811, and 812, respectively). The kinematics technique may beiterated using the new set to move along a next movement segment, inconsideration of obstacle avoidance and the target location (andoptionally in consideration of any robotic components that are missingmotors that are non-functional, or other issues).

In an example, the kinematics technique may include determining which ofp1, p2, and p3 are closest to a target (optionally subject to obstacleavoidance, discussed further below). The closest of p1, p2, and p3 maybe used to determine which motor (of x1, x2, or x3) to activate. Themotor activated may include the robotic component corresponding to thepoint opposite the closest of p1, p2, and p3 across an axis of two ofx1, x2, or x3. For example, in FIG. 8, p1 at point 812 may be determinedto be the closest to a target location (the target location may move insome examples, or p1 may be the only viable or best option based onobstacle avoidance). Because x1 at point 809 is across an axis of x2-x3from p1, the motor of the robotic component at x1 at point 809 may beselected to activate. In this example, x1-x2 may be selected as an axisof rotation, and the robotic component at x3 may be activated to movealong the initial movement segment 806 to put p1 in contact with asurface. Note that in this example, p1 replaces x1 in a new set ofcomponents in contact with a surface, while an entirely new set ofneighbor points are used (e.g., p4 adjacent p1 and x2, p5 adjacent p1and x3, and now using x1 as a neighbor point, since it remains adjacentx2 and x3).

Determining which of p1, p2, p3 are closest to the target location mayinclude using a distance formula (e.g., a dot product based oncoordinates of p1, p2, p3, and the target location or a central portionof the target location). In an example, camera triangulation to thetarget location may be used. For example, a target point is identifiedusing cameras of the robotic system, while location of the points on therobot may be known based on an IMU of the robotic system (e.g., anaverage IMU among robotic components, an IMU of the core, etc.), orother sensor information.

The distance formula may use a center of the initial position 802 (e.g.,a centroid of the triangle), projections of p1, p2, p3 on the surface,and a projection of the target location (or a center or perimeter pointof the target location). The distance to the target location isdetermined for each of the projected points p1, p2, p3, and the shortestdistance may be chosen.

In an example, an internal coordinate system to the robotic system maybe used to identify the target location. For example, a targetcoordinate may be entered (e.g., by a user on a map, via coordinates,based on selection of a target object to reach or track etc.). A cameraidentified position of the target location may be translated into theinternal coordinate system for determining the distances. In anotherexample, the cameras of the robotic system may produce a stereoscopic360 view, which may capture or include identified depth or distanceinformation for navigation to the target location.

In the kinematics technique, a redetection of the next closest point tothe target location may be determined for each new set of roboticcomponents touching the surface (e.g., after each movement segment).This may help with error correction (e.g., an entirely preplanned pathmay have issues if something interrupts, bumps, or moves the robot, orif obstacle avoidance occurs).

In an example, an artificial intelligence (AI) model may be used thatallows each of the robotic components to behave independently. Each ofthese independent robotic components may determine its own motion, suchas based on information received from other robotic components, cameraimages, or the like. In another example, an AI model running on the coreof the robotic system may be used that controls activation of motors ofthe robotic components, and may learn movement concepts over time toimprove movement. A core AI model may avoid use of a robotic componentthat is non-functional or limited in functionality (e.g., does notextend fully or as swiftly as other components). The core AI model maylearn better techniques to avoid particular obstacles or to traversedifficult surfaces over time. In an example, such AI models may beimplemented through use of software based models (e.g., neural networks,machine learning algorithms), or acceleration circuitry (e.g., neuralprocessing circuits, neuromorphic hardware, etc.) In some examples, therobotic system may operate without human intervention, such as afterinitial input on a target location (e.g., when operating on anotherplanet).

In further examples, any of the compute nodes or devices discussed withreference to the present robotic computing systems and environment maybe fulfilled based on the components depicted in FIGS. 9A and 9B.Respective robotic components may be embodied as a type of devicecapable of communicating with a core or an edge, networking, or endpointcomponent.

In the simplified example depicted in FIG. 9A, a robotic component 900(e.g., the core device or the connected robotic components describedherein throughout) includes a compute engine (also referred to herein as“compute circuitry”) 902, an input/output (I/O) subsystem 908, datastorage 910, a communication circuitry subsystem 912, and, optionally,one or more peripheral devices 914 (e.g., a camera, a sensor, etc.). Inother examples, respective compute devices may include other oradditional components, such as those typically found in a computer(e.g., a display, peripheral devices, etc.). Additionally, in someexamples, one or more of the illustrative components may be incorporatedin, or otherwise form a portion of, another component.

The robotic component 900 may be embodied as any type of engine, device,or collection of devices capable of performing various computefunctions. In some examples, the robotic component 900 may include asingle device such as an integrated circuit, an embedded system, afield-programmable gate array (FPGA), a system-on-a-chip (SOC), or otherintegrated system or device. In the illustrative example, the roboticcomponent 900 includes or is embodied as a processor 904 and a memory906. The processor 904 may be embodied as any type of processor capableof performing the functions described herein (e.g., executing anapplication). For example, the processor 904 may be embodied as amulti-core processor(s), a microcontroller, a processing unit, aspecialized or special purpose processing unit, or other processor orprocessing/controlling circuit.

In some examples, the processor 904 may be embodied as, include, or becoupled to an FPGA, an application specific integrated circuit (ASIC),reconfigurable hardware or hardware circuitry, or other specializedhardware to facilitate performance of the functions described herein.Also in some examples, the processor 904 may be embodied as aspecialized x-processing unit (xPU) also known as a data processing unit(DPU), infrastructure processing unit (IPU), or network processing unit(NPU). Such an xPU may be embodied as a standalone circuit or circuitpackage, integrated within an SOC, or integrated with networkingcircuitry (e.g., in a SmartNIC, or enhanced SmartNlC), accelerationcircuitry, storage devices, or AI hardware (e.g., GPUs or programmedFPGAs). Such an xPU may be designed to receive programming to processone or more data streams and perform specific tasks and actions for thedata streams (such as hosting microservices, performing servicemanagement or orchestration, organizing or managing server or datacenter hardware, managing service meshes, or collecting and distributingtelemetry), outside of the CPU or general purpose processing hardware.However, it will be understood that a xPU, a SOC, a CPU, and othervariations of the processor 904 may work in coordination with each otherto execute many types of operations and instructions within and onbehalf of the robotic component 900.

The memory 906 may be embodied as any type of volatile (e.g., dynamicrandom access memory (DRAM), etc.) or non-volatile memory or datastorage capable of performing the functions described herein. Volatilememory may be a storage medium that requires power to maintain the stateof data stored by the medium. Non-limiting examples of volatile memorymay include various types of random access memory (RAM), such as DRAM orstatic random access memory (SRAM). One particular type of DRAM that maybe used in a memory module is synchronous dynamic random access memory(SDRAM).

In an example, the memory device is a block addressable memory device,such as those based on NAND or NOR technologies. A memory device mayalso include a three-dimensional crosspoint memory device (e.g., Intel®3D XPoint™ memory), or other byte addressable write-in-place nonvolatilememory devices. The memory device may refer to the die itself or to apackaged memory product. In some examples, 3D crosspoint memory (e.g.,Intel® 3D XPoint™ memory) may comprise a transistor-less stackable crosspoint architecture in which memory cells sit at the intersection of wordlines and bit lines and are individually addressable and in which bitstorage is based on a change in bulk resistance. In some examples, allor a portion of the memory 906 may be integrated into the processor 904.The memory 906 may store various software and data used during operationsuch as one or more applications, data operated on by the application,library, and driver.

The compute circuitry 902 is communicatively coupled to other componentsof the robotic component 900 via the I/O subsystem 908, which may beembodied as circuitry or components to facilitate input/outputoperations with the compute circuitry 902 (e.g., with the processor 904or the main memory 906) and other components of the compute circuitry902. For example, the I/O subsystem 908 may be embodied as, or otherwiseinclude, memory controller hubs, input/output control hubs, integratedsensor hubs, firmware devices, communication links (e.g., point-to-pointlinks, bus links, wires, cables, light guides, printed circuit boardtraces, etc.), or other components and subsystems to facilitate theinput/output operations. In some examples, the I/O subsystem 908 mayform a portion of a system-on-a-chip (SoC) and be incorporated, alongwith one or more of the processor 904, the memory 906, and othercomponents of the compute circuitry 902, into the compute circuitry 902.

The one or more illustrative data storage devices 910 may be embodied asany type of devices configured for short-term or long-term storage ofdata such as, for example, memory devices and circuits, memory cards,hard disk drives, solid-state drives, or other data storage devices.Individual data storage devices 910 may include a system partition thatstores data and firmware code for the data storage device 910.Individual data storage devices 910 may also include one or moreoperating system partitions that store data files and executables foroperating systems depending on, for example, the type of roboticcomponent 900.

The communication circuitry 912 may be embodied as any communicationcircuit, device, or collection thereof, capable of enablingcommunications between the compute circuitry 902 and another computedevice (e.g., from a connected robotic component to a core device in arobotic system or from the core device or the connected roboticcomponent to a network, such as over wireless communications to theinternet.). The communication circuitry 912 may be configured to use anyone or more communication technology (e.g., wired or wirelesscommunications) and associated protocols (e.g., a cellular networkingprotocol such a 3GPP 4G or 5G standard, a wireless local area networkprotocol such as IEEE 802.11/Wi-Fi®, a wireless wide area networkprotocol, Ethernet, Bluetooth®, Bluetooth Low Energy, a IoT protocolsuch as IEEE 802.15.4 or ZigBee®, low-power wide-area network (LPWAN),low-power wide-area (LPWA) protocols, etc.), or near filed communication(NFC), to effect such communication.

The illustrative communication circuitry 912 includes a networkinterface controller (NIC) 920, which may also be referred to as a hostfabric interface (HFI), and is optional. The NIC 920 may be embodied asone or more add-in-boards, daughter cards, network interface cards,controller chips, chipsets, or other devices that may be used by therobotic component 900 to connect with another compute device (e.g., anedge gateway node). In some examples, the NIC 920 may be embodied aspart of a system-on-a-chip (SoC) that includes one or more processors,or included on a multichip package that also contains one or moreprocessors. In some examples, the NIC 920 may include a local processor(not shown) or a local memory (not shown) that are both local to the MC920. In such examples, the local processor of the NIC 920 may be capableof performing one or more of the functions of the compute circuitry 902described herein. Additionally, or alternatively, in such examples, thelocal memory of the NIC 920 may be integrated into one or morecomponents of the client compute node at the board level, socket level,chip level, or other levels.

Additionally, in some examples, a respective robotic component 900 mayinclude one or more peripheral devices 914. Such peripheral devices 914may include any type of peripheral device that may found in a computedevice or server such as audio input devices, a display, otherinput/output devices, interface devices, camera, sensor, IMU, light, orother peripheral devices, depending on the particular type of therobotic component 900.

In a more detailed example, FIG. 9B illustrates a block diagram of anexample of components that may be present in a robotic component 950 forimplementing the techniques (e.g., operations, processes, methods, andmethodologies) described herein. This robotic component 950 provides acloser view of the respective components of robotic component 900 whenimplemented as or as part of a computing device (e.g., as a core device,a connected robotic component, etc.). The robotic component 950 mayinclude any combinations of the hardware or logical componentsreferenced herein, and it may include or couple with any device usablewith a robotic system. The components may be implemented as integratedcircuits (ICs), portions thereof, discrete electronic devices, or othermodules, instruction sets, programmable logic or algorithms, hardware,hardware accelerators, software, firmware, or a combination thereofadapted in the robotic component 950, or as components otherwiseincorporated within a chassis of a larger system.

The robotic component 950 may include processing circuitry in the formof a processor 952, which may be a microprocessor, a multi-coreprocessor, a multithreaded processor, an ultra-low voltage processor, anembedded processor, an xPU/DPU/IPU/NPU, special purpose processing unit,specialized processing unit, or other known processing elements. Theprocessor 952 may be a part of a system on a chip (SoC) in which theprocessor 952 and other components are formed into a single integratedcircuit, or a single package, such as the Edison™ or Galileo™ SoC boardsfrom Intel Corporation, Santa Clara, Calif. As an example, the processor952 may include an Intel® Architecture Core™ based CPU processor, suchas a Quark™, an Atom™, an i3, an i5, an i7, an i9, or an MCU-classprocessor, or another such processor available from Intel®. However, anynumber other processors may be used, such as available from AdvancedMicro Devices, Inc. (AMD®) of Sunnyvale, Calif., a MIPS®-based designfrom MIPS Technologies, Inc. of Sunnyvale, Calif., an ARM®-based designlicensed from ARM Holdings, Ltd. or a customer thereof, or theirlicensees or adopters. The processors may include units such as anA5-A13 processor from Apple® Inc., a Snapdragon™ processor fromQualcomm® Technologies, Inc., or an OMAP™ processor from TexasInstruments, Inc. The processor 952 and accompanying circuitry may beprovided in a single socket form factor, multiple socket form factor, ora variety of other formats, including in limited hardware configurationsor configurations that include fewer than all elements shown in FIG. 9B.

The processor 952 may communicate with a system memory 954 over aninterconnect 956 (e.g., a bus). Any number of memory devices may be usedto provide for a given amount of system memory. As examples, the memory954 may be random access memory (RAM) in accordance with a JointElectron Devices Engineering Council (JEDEC) design such as the DDR ormobile DDR standards (e.g., LPDDR, LPDDR2, LPDDR3, or LPDDR4). Inparticular examples, a memory component may comply with a DRAM standardpromulgated by JEDEC, such as JESD79F for DDR SDRAM, JESD79-2F for DDR2SDRAM, JESD79-3F for DDR3 SDRAM, JESD79-4A for DDR4 SDRAM, JESD209 forLow Power DDR (LPDDR), JESD209-2 for LPDDR2, JESD209-3 for LPDDR3, andJESD209-4 for LPDDR4. Such standards (and similar standards) may bereferred to as DDR-based standards and communication interfaces of thestorage devices that implement such standards may be referred to asDDR-based interfaces. In various implementations, the individual memorydevices may be of any number of different package types such as singledie package (SDP), dual die package (DDP) or quad die package (Q17P).These devices, in some examples, may be directly soldered onto amotherboard to provide a lower profile solution, while in other examplesthe devices are configured as one or more memory modules that in turncouple to the motherboard by a given connector. Any number of othermemory implementations may be used, such as other types of memorymodules, e.g., dual inline memory modules (DIMMs) of different varietiesincluding but not limited to microDIMMs or MiniDIMMs.

To provide for persistent storage of information such as data,applications, operating systems and so forth, a storage 958 may alsocouple to the processor 952 via the interconnect 956. In an example, thestorage 958 may be implemented via a solid-state disk drive (SSDD).Other devices that may be used for the storage 958 include flash memorycards, such as Secure Digital (SD) cards, microSD cards, eXtreme Digital(XD) picture cards, and the like, and Universal Serial Bus (USB) flashdrives. In an example, the memory device may be or may include memorydevices that use chalcogenide glass, multi-threshold level NAND flashmemory, NOR flash memory, single or multi-level Phase Change Memory(PCM), a resistive memory, nanowire memory, ferroelectric transistorrandom access memory (FeTRAM), anti-ferroelectric memory,magnetoresistive random access memory (MRAM) memory that incorporatesmemristor technology, resistive memory including the metal oxide base,the oxygen vacancy base and the conductive bridge Random Access Memory(CB-RAM), or spin transfer torque (STT)-MRAM, a spintronic magneticjunction memory based device, a magnetic tunneling junction (MTJ) baseddevice, a DW (Domain Wall) and SOT (Spin Orbit Transfer) based device, athyristor based memory device, or a combination of any of the above, orother memory.

In low power implementations, the storage 958 may be on-die memory orregisters associated with the processor 952. However, in some examples,the storage 958 may be implemented using a micro hard disk drive (HDD).Further, any number of new technologies may be used for the storage 958in addition to, or instead of, the technologies described, suchresistance change memories, phase change memories, holographic memories,or chemical memories, among others.

The components may communicate over the interconnect 956. Theinterconnect 956 may include any number of technologies, includingindustry standard architecture (ISA), extended ISA (EISA), peripheralcomponent interconnect (PCI), peripheral component interconnect extended(PCIx), PCI express (PCIe), or any number of other technologies. Theinterconnect 956 may be a proprietary bus, for example, used in an SoCbased system. Other bus systems may be included, such as anInter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface(SPI) interface, point to point interfaces, and a power bus, amongothers.

The interconnect 956 may couple the processor 952 to a transceiver 966,for communications with the connected edge devices 962. The transceiver966 may use any number of frequencies and protocols, such as 2.4Gigahertz (GHz) transmissions under the IEEE 802.15.4 standard, usingthe Bluetooth® low energy (BLE) standard, as defined by the Bluetooth®Special Interest Group, or the ZigBee® standard, among others. Anynumber of radios, configured for a particular wireless communicationprotocol, may be used for the connections to the connected edge devices962. For example, a wireless local area network (WLAN) unit may be usedto implement Wi-Fi® communications in accordance with the Institute ofElectrical and Electronics Engineers (IEEE) 802.11 standard. Inaddition, wireless wide area communications, e.g., according to acellular or other wireless wide area protocol, may occur via a wirelesswide area network (WWAN) unit.

The wireless network transceiver 966 (or multiple transceivers) maycommunicate using multiple standards or radios for communications at adifferent range. For example, the robotic component 950 may communicatewith close devices, e.g., within about 10 meters, using a localtransceiver based on Bluetooth Low Energy (BLE), NFC, or another lowpower radio, to save power. More distant connected edge devices 962,e.g., within about 50 meters, may be reached over ZigBee® or otherintermediate power radios. Both communications techniques may take placeover a single radio at different power levels or may take place overseparate transceivers, for example, a local transceiver using BLE and aseparate mesh transceiver using ZigBee®.

A wireless network transceiver 966 (e.g., a radio transceiver) may beincluded to communicate with devices or services in the edge cloud 995via local or wide area network protocols. The wireless networktransceiver 966 may be a low-power wide-area (LPWA) transceiver thatfollows the IEEE 802.15.4, or IEEE 802.15.4g standards, among others.The robotic component 950 may communicate over a wide area usingLoRaWAN™ (Long Range Wide Area Network) developed by Semtech and theLoRa Alliance. The techniques described herein are not limited to thesetechnologies but may be used with any number of other cloud transceiversthat implement long range, low bandwidth communications, such as Sigfox,and other technologies. Further, other communications techniques, suchas time-slotted channel hopping, described in the IEEE 802.15.4especification may be used.

Any number of other radio communications and protocols may be used inaddition to the systems mentioned for the wireless network transceiver966, as described herein. For example, the transceiver 966 may include acellular transceiver that uses spread spectrum (SPA/SAS) communicationsfor implementing high-speed communications. Further, any number of otherprotocols may be used, such as Wi-Fi® networks for medium speedcommunications and provision of network communications. The transceiver966 may include radios that are compatible with any number of 3GPP(Third Generation Partnership Project) specifications, such as Long TermEvolution (LTE) and 5th Generation (5G) communication systems. A networkinterface controller (NIC) 968 may be included to provide a wiredcommunication to nodes of the edge cloud 995 or to other devices, suchas the connected edge devices 962 (e.g., operating in a mesh). The wiredcommunication may provide an Ethernet connection or may be based onother types of networks, such as Controller Area Network (CAN), LocalInterconnect Network (LIN), DeviceNet, ControlNet, Data Highway+,PROFIBUS, or PROFINET, among many others. An additional NIC 968 may beincluded to enable connecting to a second network, for example, a firstNIC 968 providing communications to the cloud over Ethernet, and asecond NIC 968 providing communications to other devices over anothertype of network.

Given the variety of types of applicable communications from the deviceto another component or network, applicable communications circuitryused by the device may include or be embodied by any one or more ofcomponents 964, 966, 968, or 970. Accordingly, in various examples,applicable means for communicating (e.g., receiving, transmitting, etc.)may be embodied by such communications circuitry.

The robotic component 950 may include or be coupled to accelerationcircuitry Error! Reference source not found.64, which may be embodied byone or more artificial intelligence (AI) accelerators, a neural computestick, neuromorphic hardware, an FPGA, an arrangement of GPUs, anarrangement of xPUs/DPUs/IPU/NPUs, one or more SoCs, one or more CPUs,one or more digital signal processors, dedicated ASICs, or other formsof specialized processors or circuitry designed to accomplish one ormore specialized tasks. These tasks may include AI processing (includingmachine learning, training, inferencing, and classification operations),visual data processing, network data processing, object detection, ruleanalysis, or the like. These tasks also may include the specific edgecomputing tasks for service management and service operations discussedelsewhere in this document.

The interconnect 956 may couple the processor 952 to a sensor hub orexternal interface 970 that is used to connect additional devices orsubsystems. The devices may include sensors 972, such as accelerometers,IMUs, level sensors, flow sensors, optical light sensors, camerasensors, temperature sensors, global navigation system (e.g., GPS)sensors, pressure sensors, barometric pressure sensors, and the like.The hub or interface 970 further may be used to connect the roboticcomponent 950 to actuators 974, such as power switches, valve actuators,an audible sound generator, a visual warning device, and the like.

In some optional examples, various input/output (I/O) devices may bepresent within or connected to, the robotic component 950. For example,a display or other output device 984 may be included to showinformation, such as sensor readings or actuator position. An inputdevice 986, such as a touch screen or keypad may be included to acceptinput. An output device 984 may include any number of forms of audio orvisual display, including simple visual outputs such as binary statusindicators (e.g., light-emitting diodes (LEDs)) and multi-charactervisual outputs, or more complex outputs such as display screens (e.g.,liquid crystal display (LCD) screens), with the output of characters,graphics, multimedia objects, and the like being generated or producedfrom the operation of the robotic component 950. A display or consolehardware, in the context of the present system, may be used to provideoutput and receive input of an edge computing system; to managecomponents or services of an edge computing system; identify a state ofan edge computing component or service; or to conduct any other numberof management or administration functions or service use cases.

A battery 976 may power the robotic component 950. In an example, thebattery 976 may include a plurality of batteries. The battery 976 may berechargeable from a power source, such as an electrical grid or anotherrobotic component 950 (e.g., a battery of the core may be charged from abattery of a connected robotic component). The battery 976 may be alithium ion battery, a metal-air battery, such as a zinc-air battery, analuminum-air battery, a lithium-air battery, or the like.

A battery monitor/charger 978 may be included in the robotic component950 to track the state of charge (SoCh) of the battery 976, if included.The battery monitor/charger 978 may be used to monitor other parametersof the battery 976 to provide failure predictions, such as the state ofhealth (SoH) and the state of function (SoF) of the battery 976. Thebattery monitor/charger 978 may include a battery monitoring integratedcircuit, such as an LTC4020 or an LTC2990 from Linear Technologies, anADT7488A from ON Semiconductor of Phoenix Ariz., or an IC from theUCD90xxx family from Texas Instruments of Dallas, Tex. The batterymonitor/charger 978 may communicate the information on the battery 976to the processor 952 over the interconnect 956. The batterymonitor/charger 978 may also include an analog-to-digital (ADC)converter that enables the processor 952 to directly monitor the voltageof the battery 976 or the current flow from the battery 976. The batteryparameters may be used to determine actions that the robotic component950 may perform, such as transmission frequency, mesh network operation,sensing frequency, and the like.

A power block 980, or other power supply coupled to a grid, may becoupled with the battery monitor/charger 978 to charge the battery 976.In some examples, the power block 980 may be replaced with a wirelesspower receiver to obtain the power wirelessly, for example, through aloop antenna in the robotic component 950. A wireless battery chargingcircuit, such as an LTC4020 chip from Linear Technologies of Milpitas,Calif., among others, may be included in the battery monitor/charger978. The specific charging circuits may be selected based on the size ofthe battery 976, and thus, the current required. The charging may beperformed using the Airfuel standard promulgated by the AirfuelAlliance, the Qi wireless charging standard promulgated by the WirelessPower Consortium, or the Rezence charging standard, promulgated by theAlliance for Wireless Power, among others.

The storage 958 may include instructions 982 in the form of software,firmware, or hardware commands to implement the techniques describedherein. Although such instructions 982 are shown as code blocks includedin the memory 954 and the storage 958, it may be understood that any ofthe code blocks may be replaced with hardwired circuits, for example,built into an application specific integrated circuit (ASIC).

In an example, the instructions 982 provided via the memory 954, thestorage 958, or the processor 952 may be embodied as a non-transitory,machine-readable medium 960 including code to direct the processor 952to perform electronic operations in the robotic component 950. Theprocessor 952 may access the non-transitory, machine-readable medium 960over the interconnect 956. For example, the non-transitory,machine-readable medium 960 may be embodied by devices described for thestorage 958 or may include specific storage units such as optical disks,flash drives, or any number of other hardware devices. Thenon-transitory, machine-readable medium 960 may include instructions todirect the processor 952 to perform a specific sequence or flow ofactions, for example, as described with respect to the flowchart(s) andblock diagram(s) of operations and functionality depicted above. As usedherein, the terms “machine-readable medium” and “computer-readablemedium” are interchangeable.

In further examples, a machine-readable medium also includes anytangible medium that is capable of storing, encoding or carryinginstructions for execution by a machine and that cause the machine toperform any one or more of the methodologies of the present disclosureor that is capable of storing, encoding or carrying data structuresutilized by or associated with such instructions. A “machine-readablemedium” thus may include but is not limited to, solid-state memories,and optical and magnetic media. Specific examples of machine-readablemedia include non-volatile memory, including but not limited to, by wayof example, semiconductor memory devices (e.g., electricallyprogrammable read-only memory (EPROM), electrically erasableprogrammable read-only memory (EEPROM)) and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The instructionsembodied by a machine-readable medium may further be transmitted orreceived over a communications network using a transmission medium via anetwork interface device utilizing any one of a number of transferprotocols (e.g., Hypertext Transfer Protocol (HTTP)).

A machine-readable medium may be provided by a storage device or otherapparatus which is capable of hosting data in a non-transitory format.In an example, information stored or otherwise provided on amachine-readable medium may be representative of instructions, such asinstructions themselves or a format from which the instructions may bederived. This format from which the instructions may be derived mayinclude source code, encoded instructions (e.g., in compressed orencrypted form), packaged instructions (e.g., split into multiplepackages), or the like. The information representative of theinstructions in the machine-readable medium may be processed byprocessing circuitry into the instructions to implement any of theoperations discussed herein. For example, deriving the instructions fromthe information (e.g., processing by the processing circuitry) mayinclude: compiling (e.g., from source code, object code, etc.),interpreting, loading, organizing (e.g., dynamically or staticallylinking), encoding, decoding, encrypting, unencrypting, packaging,unpackaging, or otherwise manipulating the information into theinstructions.

In an example, the derivation of the instructions may include assembly,compilation, or interpretation of the information (e.g., by theprocessing circuitry) to create the instructions from some intermediateor preprocessed format provided by the machine-readable medium. Theinformation, when provided in multiple parts, may be combined, unpacked,and modified to create the instructions. For example, the informationmay be in multiple compressed source code packages (or object code, orbinary executable code, etc.) on one or several remote servers. Thesource code packages may be encrypted when in transit over a network anddecrypted, uncompressed, assembled (e.g., linked) if necessary, andcompiled or interpreted (e.g., into a library, stand-alone executable,etc.) at a local machine, and executed by the local machine.

FIG. 10 illustrates a flowchart showing a technique 1000 for autonomousmovement of a robotic system having a plurality of independentlymoveable components, accordance with some examples. The technique 1000may be performed by a device including processing circuitry and memory.In an example, the processing circuitry and memory are part of a coredevice of the robotic system in communication with each of the pluralityof components. In other examples, aspects of the technique 1000 may beperformed by processing circuitry of one or more of the components, or acombination of one or more components and the core device. The memorymay include instructions, to be executed by the processing circuitry.The instructions may include operations to control actions of one ormore of the plurality of components, such as to achieve a task (e.g.,autonomous movement).

The technique 1000 includes an operation 1002 to receive a targetlocation. Operation 1002 may include receiving location instructions viacommunication circuitry of the robotic system, such as from a userdevice (e.g., a mobile device, a computer, etc.). An internal coordinatesystem of the robotic system may be used to identify the targetlocation. In another example, the target location may be identified bythe robotic system, for example as part of a given task. In someexamples, operation 1002 includes using a camera of the robotic systemto capture an image (e.g., a depth image) of the target location. Fromthe image, the target location may be expressed in terms of an internalcoordinate system of the robotic system. From the internal coordinatesystem target location, a path to the target location may be determined.In an example, the target location may be on a moving object. In thisexample, the robotic system may be configured to follow the movingobject.

The technique 1000 includes an operation 1004 to identify a set ofrobotic components of a robotic system that are in contact with asurface.

The technique 1000 includes an operation 1006 to determine, using thetarget location and information captured by a first camera of therobotic system, a first robotic component of the set of roboticcomponents to activate to cause the robotic system to move closer to thetarget location. In an example, the robotic components may include ahexagonal or pentagonal surface. Operation 1006 may include using adistance from a point on each of the first robotic component and the twoother robotic components to the target location, and selecting the firstrobotic component based on the first robotic component corresponding toa shortest distance to the target location.

In an example, operation 1006 may include identifying a second set ofrobotic components of the plurality of independently moveablecomponents, each of the second set of robotic components being adjacentto two components of the first set of robotic components. In thisexample, the technique 1000 may include determining a referencecomponent from the second set of three components that is closest to thetarget location using the information captured by the first camera, thereference component being adjacent to a second and a third components ofthe first set of robotic components. The second and third components inthis example may form the axis. In this example, the reference componentmay include the first camera. In this example, after movement of therobotic system from the activating the motor of the first roboticcomponent, the reference component is in contact with the surface. Thetechnique 1000 may be iterated with the two other robotic components andthe reference component replacing the first set of robotic componentsafter the movement.

The technique 1000 includes an operation 1008 to activate, based on thedetermination, a motor of the first robotic component to push againstthe surface to cause the robotic system to move towards the targetlocation. Operation 1008 may include sending a control signal (e.g.,from a core of the robotic device or from processing circuitry of thefirst robotic component) to cause the motor to turn a screw of the firstrobotic component, the screw turning causing an air bladder to inflate,the air bladder inflation causing a membrane to extend to push on thesurface. Before operation 1008, the technique 1000 may includedetermining whether a collision would be caused by activating the motor.In this example, if a collision would be caused, operation 1008 may becanceled, and a motor of a different robotic component may be selectedfor activating, for example to avoid or move around the object. In someexamples, an imminent collision may be detected while the robotic deviceis in motion, such as after activating the motor in operation 1008. Inthese examples, evasive steps may be taken, for example activating amotor of one or more robotic components, such as to slow down, speed up,or change direction of the robotic system. These movements may notnecessarily move the robotic system towards the target location, andafter avoiding the object, the technique 1000 may resume withdetermining a motor to activate to advance towards the target location.

The technique 1000 may include capturing images using cameras of theplurality of independently moveable components of an object while therobotic system traverses a loop around the object to reach the targetlocation. In this example, a three-dimensional model of the object maybe generated using the captured images. The technique 1000 may includecapturing images of surroundings of the robotic system using cameras ofthe plurality of independently moveable components while the roboticsystem moves to the target location. In this example, a depth image of aportion of the surroundings may be generated.

FIG. 11 illustrates the training and use of a machine-learning program,according to some example embodiments. In some example embodiments,machine-learning programs (MLPs), also referred to as machine-learningalgorithms or tools, are utilized to coordinate robots to perform acomplex task.

Machine Learning (ML) is an application that provides computer systemsthe ability to perform tasks, without explicitly being programmed, bymaking inferences based on patterns found in the analysis of data.Machine learning explores the study and construction of algorithms, alsoreferred to herein as tools, that may learn from existing data and makepredictions about new data. Although example embodiments are presentedwith respect to a few machine-learning tools, the principles presentedherein may be applied to other machine-learning tools.

There are two common modes for ML: supervised ML and unsupervised ML.Supervised ML uses prior knowledge (e.g., examples that correlate inputsto outputs or outcomes) to learn the relationships between the inputsand the outputs. The goal of supervised ML is to learn a function that,given some training data, best approximates the relationship between thetraining inputs and outputs so that the ML model can implement the samerelationships when given inputs to generate the corresponding outputs.Unsupervised ML is the training of an ML algorithm using informationthat is neither classified nor labeled, and allowing the algorithm toact on that information without guidance. Unsupervised ML is useful inexploratory analysis because it can automatically identify structure indata.

Common tasks for supervised ML are classification problems andregression problems. Classification problems, also referred to ascategorization problems, aim at classifying items into one of severalcategory values (for example, is this object an apple or an orange?).Regression algorithms aim at quantifying some items (for example, byproviding a score to the value of some input). Some examples of commonlyused supervised-ML algorithms are Logistic Regression (LR), Naive-Bayes,Random Forest (RF), neural networks (NN), deep neural networks (DNN),matrix factorization, and Support Vector Machines (SVM).

Some common tasks for unsupervised ML include clustering, representationlearning, and density estimation. Some examples of commonly usedunsupervised-ML algorithms are K-means clustering, principal componentanalysis, and autoencoders. In some embodiments, example ML model 1116outputs actions for one or more robots to achieve a complex task.

The machine-learning algorithms use labeled or unlabeled data 1112(e.g., a target location, obstacles, movement history, movementcapabilities, etc.) to find correlations among identified features 1102that affect the outcome. A feature 1102 is an individual measurableproperty of a phenomenon being observed. The concept of a feature isrelated to that of an explanatory variable used in statisticaltechniques such as linear regression. Choosing informative,discriminating, and independent features is important for effectiveoperation of ML in pattern recognition, classification, and regression.Features may be of different types, such as numeric features, strings,and graphs.

During training 1114, the ML algorithm analyzes the input data 1112based on identified features 1102 and configuration parameters 1111defined for the training (e.g., environmental data, state data, etc.).The result of the training 1114 is an ML model 1116 that is capable oftaking inputs to produce a complex task.

Training an ML algorithm involves analyzing data to find correlations.The ML algorithms utilize the input data 1112 to find correlations amongthe identified features 1102 that affect the outcome or assessment 1120.

The ML algorithms usually explore many possible functions and parametersbefore finding what the ML algorithms identify to be the bestcorrelations within the data; therefore, training may make use of largeamounts of computing resources and time, such as many iterations for aReinforcement Learning technique.

Many ML algorithms include configuration parameters 1111, and the morecomplex the ML algorithm, the more parameters there are that areavailable to the user. The configuration parameters 1111 definevariables for an ML algorithm in the search for the best ML model.

When the ML model 1116 is used to perform an assessment, new data 1118is provided as an input to the ML model 1116, and the ML model 1116generates the assessment 1120 as output.

It should be understood that the functional units or capabilitiesdescribed in this specification may have been referred to or labeled ascomponents or modules, in order to more particularly emphasize theirimplementation independence. Such components may be embodied by anynumber of software or hardware forms. For example, a component or modulemay be implemented as a hardware circuit comprising customvery-large-scale integration (VLSI) circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A component or module may also be implemented inprogrammable hardware devices such as field programmable gate arrays,programmable array logic, programmable logic devices, or the like.Components or modules may also be implemented in software for executionby various types of processors. An identified component or module ofexecutable code may, for instance, comprise one or more physical orlogical blocks of computer instructions, which may, for instance, beorganized as an object, procedure, or function. Nevertheless, theexecutables of an identified component or module need not be physicallylocated together but may comprise disparate instructions stored indifferent locations which, when joined logically together (e.g.,including over a wire, over a network, using one or more platforms,wirelessly, via a software component, or the like), comprise thecomponent or module and achieve the stated purpose for the component ormodule.

Indeed, a component or module of executable code may be a singleinstruction, or many instructions, and may even be distributed overseveral different code segments, among different programs, and acrossseveral memory devices or processing systems. In particular, someaspects of the described process (such as code rewriting and codeanalysis) may take place on a different processing system (e.g., in acomputer in a data center) than that in which the code is deployed(e.g., in a computer embedded in a sensor or robot). Similarly,operational data may be identified and illustrated herein withincomponents or modules and may be embodied in any suitable form andorganized within any suitable type of data structure. The operationaldata may be collected as a single data set or may be distributed overdifferent locations including over different storage devices, and mayexist, at least partially, merely as electronic signals on a system ornetwork. The components or modules may be passive or active, includingagents operable to perform desired functions.

Additional examples of the presently described method, system, anddevice examples include the following, non-limiting implementations.Each of the following non-limiting examples may stand on its own or maybe combined in any permutation or combination with any one or more ofthe other examples provided below or throughout the present disclosure.

Example 1 is a method for autonomous movement of a robotic system havinga plurality of independently moveable components, the method comprising:receiving, at processing circuitry of the robotic system, a targetlocation; identifying a first set of robotic components of the pluralityof independently moveable components in contact with a surface;determining, using the target location and information captured by afirst camera of the robotic system, a first robotic component of thefirst set of robotic components to activate to cause the robotic systemto move closer to the target location; and activating, based on thedetermination, a motor of the first robotic component to push againstthe surface to cause the robotic system to pivot about an axis formed bytwo other robotic components of the first set of robotic componentstowards the target location.

In Example 2, the subject matter of Example 1 includes, whereinactivating the motor includes sending a control signal to cause themotor to turn a screw of the first robotic component, the screw turningcausing an air bladder to inflate, the air bladder inflation causing amembrane to extend to push on the surface.

In Example 3, the subject matter of Examples 1-2 includes, beforeactivating the motor, determining whether a collision would be caused byactivating the motor of the first robotic component.

In Example 4, the subject matter of Examples 1-3 includes, whereinreceiving the target location includes receiving location instructionsvia communications circuitry of the robotic system and using an internalcoordinate system to identify the target location.

In Example 5, the subject matter of Examples 1-4 includes, capturingimages using cameras of the plurality of independently moveablecomponents of an object while the robotic system traverses a loop aroundthe object to reach the target location; and generating athree-dimensional model of the object using the captured images.

In Example 6, the subject matter of Examples 1-5 includes, capturingimages of surroundings of the robotic system using cameras of theplurality of independently moveable components while the robotic systemmoves to the target location; and generating a depth image of a portionof the surroundings.

In Example 7, the subject matter of Examples 1-6 includes, wherein thetarget location is located on a moving object, and further comprisingiterating the method to follow the moving object.

In Example 8, the subject matter of Examples 1-7 includes, wherein thefirst component includes a hexagonal surface initially in contact withthe surface, wherein the one of the two other robotic componentsincludes a pentagonal surface initially in contact with the surface,wherein the processing circuitry is located in a core of the roboticsystem, and wherein the first component is configured to plug into thecore.

In Example 9, the subject matter of Examples 1-8 includes, whereindetermining the first robotic component to activate includes:identifying a second set of robotic components of the plurality ofindependently moveable components, each of the second set of roboticcomponents being adjacent to two components of the first set of roboticcomponents; determining a reference component from the second set ofthree components that is closest to the target location using theinformation captured by the first camera, the reference component beingadjacent to a second and a third components of the first set of roboticcomponents; and wherein the second and the third components form theaxis.

In Example 10, the subject matter of Example 9 includes, wherein thereference component includes the first camera.

In Example 11, the subject matter of Examples 9-10 includes, whereinafter the robotic system moves, the reference component is in contactwith the surface; and further comprising iterating the method with thetwo other robotic components and the reference component replacing thefirst set of robotic components.

In Example 12, the subject matter of Examples 1-11 includes, whereindetermining the first robotic component to activate includes using adistance from a point on each of the first robotic component and the twoother robotic components to the target location, and selecting the firstrobotic component based on the first robotic component corresponding toa shortest distance to the target location.

Example 13 is a machine-readable medium including instructions forautonomous movement of a robotic system having a plurality ofindependently moveable components, which when executed by processingcircuitry of the robotic system, cause the processing circuitry toperform operations to: receive a target location; identify a first setof robotic components of the plurality of independently moveablecomponents in contact with a surface; determine, using the targetlocation and information captured by a first camera of the roboticsystem, a first robotic component of the first set of robotic componentsto activate to cause the robotic system to move closer to the targetlocation; and activate, based on the determination, a motor of the firstrobotic component to push against the surface to cause the roboticsystem to pivot about an axis formed by two other robotic components ofthe first set of robotic components towards the target location.

In Example 14, the subject matter of Example 13 includes, whereinoperations to activate the motor include operations to send a controlsignal to cause the motor to turn a screw of the first roboticcomponent, the screw turning causing an air bladder to inflate, the airbladder inflation causing a membrane to extend to push on the surface.

In Example 15, the subject matter of Examples 13-14 includes, whereinbefore activating the motor, the instructions, when executed, cause theprocessor to determine whether a collision would be caused by activatingthe motor of the first robotic component.

In Example 16, the subject matter of Examples 13-15 includes, whereinoperations to receive the target location include operations to receivelocation instructions via communications circuitry of the robotic systemand use an internal coordinate system to identify the target location.

In Example 17, the subject matter of Examples 13-16 includes, whereinthe instructions, when executed, cause the processor to: capture imagesusing cameras of the plurality of independently moveable components ofan object while the robotic system traverses a loop around the object toreach the target location; and generate a three-dimensional model of theobject using the captured images.

In Example 18, the subject matter of Examples 13-17 includes, whereinthe instructions, when executed, cause the processor to: capture imagesof surroundings of the robotic system using cameras of the plurality ofindependently moveable components while the robotic system moves to thetarget location; and generate a depth image of a portion of thesurroundings.

In Example 19, the subject matter of Examples 13-18 includes, whereinthe target location is located on a moving object, and wherein theoperations further comprise sequentially activating motors of theplurality of independently moveable components to follow the movingobject.

In Example 20, the subject matter of Examples 13-19 includes, whereinthe first component includes a hexagonal surface initially in contactwith the surface, wherein the one of the two other robotic componentsincludes a pentagonal surface initially in contact with the surface,wherein the processing circuitry is located in a core of the roboticsystem, and wherein the first component is configured to plug into thecore.

In Example 21, the subject matter of Examples 13-20 includes, whereinoperations to determine the first robotic component to activate includeoperations to: identify a second set of robotic components of theplurality of independently moveable components, each of the second setof robotic components being adjacent to two components of the first setof robotic components; determine a reference component from the secondset of three components that is closest to the target location using theinformation captured by the first camera, the reference component beingadjacent to a second and a third components of the first set of roboticcomponents; and wherein the second and the third components form theaxis.

In Example 22, the subject matter of Example 21 includes, wherein thereference component includes the first camera.

In Example 23, the subject matter of Examples 21-22 includes, whereinafter the robotic system moves, the reference component and the twoother robotic components are in contact with the surface; and furthercomprising operations including determining a new reference componentthat is closest to the target location.

In Example 24, the subject matter of Examples 13-23 includes, whereinoperations to determine the first robotic component to activate includeoperations to use a distance from a point on each of the first roboticcomponent and the two other robotic components to the target location,and select the first robotic component based on the first roboticcomponent corresponding to a shortest distance to the target location.

Example 25 is an autonomous robotic system comprising: a frame; a coredevice including processing circuitry and memory including instructionsthat when executed by the processing circuitry, cause the processingcircuitry to determine distances to a target location; and a pluralityof robotic components that are physically and communicatively coupled tothe core device, the plurality of robotic components independentlymoveable and including a first robotic component to: activate, based ona determination that the first robotic component corresponds to ashortest distance among robotic components of the plurality of roboticcomponents in contact with a surface, a motor of the first roboticcomponent to push against the surface to cause the autonomous roboticsystem to pivot about an axis formed by two other robotic components ofthe plurality of robotic components towards the target location.

In Example 26, the subject matter of Example 25 includes, wherein theautonomous robotic system is configured to autonomously moves when arobotic component of the plurality of robotic components is removed or amotor is nonfunctional.

In Example 27, the subject matter of Examples 25-26 includes, whereinthe core includes a global positioning system sensor, wherein each ofthe plurality of robotic components includes an inertial measurementunit, and wherein the processing circuitry is to perform errorcorrection for an internal coordinate system using an average sensorvalue from each of the inertial measurement units.

In Example 28, the subject matter of Examples 25-27 includes, whereineach of the plurality of robotic components is locked in place via alocking mechanism when physically connected to the core, the lockingmechanism controlled by the processing circuitry.

In Example 29, the subject matter of Examples 25-28 includes, whereineach of the plurality of robotic components include respective batteriesand the core includes a battery; and wherein the autonomous roboticsystem is configured to include at least one of: wherein the corebattery is configured to be charged via the respective batteries of theplurality of robotic components; wherein a battery of the respectivebatteries is configured to charge another battery of the respectivebatteries; or wherein one or more of the plurality of robotic componentsincludes a charging port.

In Example 30, the subject matter of Examples 25-29 includes, whereineach of the plurality of robotic components includes a camera.

Example 31 is a robotic system having a plurality of independentlymoveable components, the robotic system comprising: processingcircuitry; and memory including instructions for autonomous movement ofthe robotic system, which when executed by the processing circuitry,causes the processing circuitry to perform operations including:receiving, at processing circuitry of the robotic system, a targetlocation; identifying a first set of robotic components of the pluralityof independently moveable components in contact with a surface;determining, using the target location and information captured by afirst camera of the robotic system, a first robotic component of thefirst set of robotic components to activate to cause the robotic systemto move closer to the target location; and activating, based on thedetermination, a motor of the first robotic component to push, againstthe surface, to cause the robotic system to pivot about an axis formedby two other robotic components of the first set of robotic componentstowards the target location.

In Example 32, the subject matter of Example 31 includes, whereinactivating the motor includes sending a control signal to cause themotor to turn a screw of the first robotic component, the screw turningcausing an air bladder to inflate, the air bladder inflation causing amembrane to extend to push on the surface.

In Example 33, the subject matter of Examples 31-32 includes, operationsincluding, before activating the motor, determining that a collisionwould not be caused by activating the motor of the first roboticcomponent.

In Example 34, the subject matter of Examples 31-33 includes, whereinreceiving the target location includes receiving location instructionsvia communications circuitry of the robotic system and using an internalcoordinate system to identify the target location.

In Example 35, the subject matter of Examples 31-34 includes, operationsincluding: capturing images using cameras of the plurality ofindependently moveable components of an object while the robotic systemtraverses a loop around the object to reach the target location; andgenerating a three-dimensional model of the object using the capturedimages.

In Example 36, the subject matter of Examples 31-35 includes, operationsincluding: capturing images of an environment of the robotic systemusing cameras of the plurality of independently moveable componentswhile the robotic system moves to the target location; and generating adepth image of a portion of the environment.

In Example 37, the subject matter of Examples 31-36 includes, whereinthe target location is located on a moving object, and wherein theinstructions, when executed, further cause the processing circuitry tosequentially activate motors of the plurality of independently moveablecomponents to follow the moving object.

In Example 38, the subject matter of Examples 31-37 includes, whereinthe first robotic component includes a hexagonal surface initially incontact with the surface, wherein the one of the two other roboticcomponents includes a pentagonal surface initially in contact with thesurface, wherein the processing circuitry is located in a core of therobotic system, and wherein the first robotic component is configured toremovably couple with the core.

In Example 39, the subject matter of Examples 31-38 includes, whereindetermining the first robotic component to activate includes:identifying a second set of robotic components of the plurality ofindependently moveable components, each of the second set of roboticcomponents being adjacent to two components of the first set of roboticcomponents; determining a reference component from the second set ofthree components that is closest to the target location using theinformation captured by the first camera, the reference component beingadjacent to a second and a third components of the first set of roboticcomponents; and wherein the second and the third components form theaxis.

In Example 40, the subject matter of Example 39 includes, wherein thereference component includes the first camera.

In Example 41, the subject matter of Examples 39-40 includes, whereinafter the robotic system moves, the reference component is in contactwith the surface.

In Example 42, the subject matter of Examples 31-41 includes, whereindetermining the first robotic component to activate includes using adistance from a point on each of the first robotic component and the twoother robotic components to the target location, and selecting the firstrobotic component based on the first robotic component corresponding toa shortest distance to the target location.

Example 43 is at least one machine-readable medium includinginstructions that, when executed by processing circuitry, cause theprocessing circuitry to perform operations to implement of any ofExamples 1-42.

Example 44 is an apparatus comprising means to implement of any ofExamples 1-42.

Example 45 is a system to implement of any of Examples 1-42.

Example 46 is a method to implement of any of Examples 1-42.

Although these implementations have been described with reference tospecific exemplary aspects, it will be evident that variousmodifications and changes may be made to these aspects without departingfrom the broader scope of the present disclosure. Many of thearrangements and processes described herein can be used in combinationor in parallel implementations to provide greater bandwidth/throughputand to support edge services selections that can be made available tothe edge systems being serviced. Accordingly, the specification anddrawings are to be regarded in an illustrative rather than a restrictivesense. The accompanying drawings that form a part hereof show, by way ofillustration, and not of limitation, specific aspects in which thesubject matter may be practiced. The aspects illustrated are describedin sufficient detail to enable those skilled in the art to practice theteachings disclosed herein. Other aspects may be utilized and derivedtherefrom, such that structural and logical substitutions and changesmay be made without departing from the scope of this disclosure. ThisDetailed Description, therefore, is not to be taken in a limiting sense,and the scope of various aspects is defined only by the appended claims,along with the full range of equivalents to which such claims areentitled.

Such aspects of the inventive subject matter may be referred to herein,individually and/or collectively, merely for convenience and withoutintending to voluntarily limit the scope of this application to anysingle aspect or inventive concept if more than one is in factdisclosed. Thus, although specific aspects have been illustrated anddescribed herein, it should be appreciated that any arrangementcalculated to achieve the same purpose may be substituted for thespecific aspects shown. This disclosure is intended to cover any and alladaptations or variations of various aspects. Combinations of the aboveaspects and other aspects not specifically described herein will beapparent to those of skill in the art upon reviewing the abovedescription.

Method examples described herein may be machine or computer-implementedat least in part. Some examples may include a computer-readable mediumor machine-readable medium encoded with instructions operable toconfigure an electronic device to perform methods as described in theabove examples. An implementation of such methods may include code, suchas microcode, assembly language code, a higher-level language code, orthe like. Such code may include computer readable instructions forperforming various methods. The code may form portions of computerprogram products. Further, in an example, the code may be tangiblystored on one or more volatile, non-transitory, or non-volatile tangiblecomputer-readable media, such as during execution or at other times.Examples of these tangible computer-readable media may include, but arenot limited to, hard disks, removable magnetic disks, removable opticaldisks (e.g., compact disks and digital video disks), magnetic cassettes,memory cards or sticks, random access memories (RAMs), read onlymemories (ROMs), and the like.

What is claimed is:
 1. A robotic system having a plurality ofindependently moveable components, the robotic system comprising:processing circuitry; and memory including instructions for autonomousmovement of the robotic system, which when executed by the processingcircuitry, causes the processing circuitry to perform operationsincluding: receiving, at processing circuitry of the robotic system, atarget location; identifying a first set of robotic components of theplurality of independently moveable components in contact with asurface; determining, using the target location and information capturedby a first camera of the robotic system, a first robotic component ofthe first set of robotic components to activate to cause the roboticsystem to move closer to the target location; and activating, based onthe determination, a motor of the first robotic component to push,against the surface, to cause the robotic system to pivot about an axisformed by two other robotic components of the first set of roboticcomponents towards the target location.
 2. The robotic system of claim1, wherein activating the motor includes sending a control signal tocause the motor to turn a screw of the first robotic component, thescrew turning causing an air bladder to inflate, the air bladderinflation causing a membrane to extend to push on the surface.
 3. Therobotic system of claim 1, further comprising operations including,before activating the motor, determining that a collision would not becaused by activating the motor of the first robotic component.
 4. Therobotic system of claim 1, wherein receiving the target locationincludes receiving location instructions via communications circuitry ofthe robotic system and using an internal coordinate system to identifythe target location.
 5. The robotic system of claim 1, furthercomprising operations including: capturing images using cameras of theplurality of independently moveable components of an object while therobotic system traverses a loop around the object to reach the targetlocation; and generating a three-dimensional model of the object usingthe captured images.
 6. The robotic system of claim 1, furthercomprising operations including: capturing images of an environment ofthe robotic system using cameras of the plurality of independentlymoveable components while the robotic system moves to the targetlocation; and generating a depth image of a portion of the environment.7. The robotic system of claim 1, wherein the target location is locatedon a moving object, and wherein the operations further comprisesequentially activating motors of the plurality of independentlymoveable components to follow the moving object.
 8. The robotic systemof claim 1, wherein the first robotic component includes a hexagonalsurface initially in contact with the surface, wherein the one of thetwo other robotic components includes a pentagonal surface initially incontact with the surface, wherein the processing circuitry is located ina core of the robotic system, and wherein the first robotic component isconfigured to removably couple with the core.
 9. The robotic system ofclaim 1, wherein determining the first robotic component to activateincludes: identifying a second set of robotic components of theplurality of independently moveable components, each of the second setof robotic components being adjacent to two components of the first setof robotic components; determining a reference component from the secondset of three components that is closest to the target location using theinformation captured by the first camera, the reference component beingadjacent to a second and a third components of the first set of roboticcomponents; and wherein the second and the third components form theaxis.
 10. The robotic system of claim 9, wherein the reference componentincludes the first camera.
 11. The robotic system of claim 9, whereinafter the robotic system moves, the reference component and the twoother robotic components are in contact with the surface; and furthercomprising operations including determining a new reference componentthat is closest to the target location.
 12. The robotic system of claim1, wherein determining the first robotic component to activate includesusing a distance from a point on each of the first robotic component andthe two other robotic components to the target location, and selectingthe first robotic component based on the first robotic componentcorresponding to a shortest distance to the target location.
 13. Amachine-readable medium including instructions for autonomous movementof a robotic system having a plurality of independently moveablecomponents, which when executed by processing circuitry of the roboticsystem, cause the processing circuitry to perform operations to: obtaina target location; identify a first set of robotic components of theplurality of independently moveable components in contact with asurface; determine, using the target location and information capturedby a first camera of the robotic system, a first robotic component ofthe first set of robotic components to activate to cause the roboticsystem to move closer to the target location; and activate, based on thedetermination, a motor of the first robotic component to push, againstthe surface, to cause the robotic system to pivot about an axis formedby two other robotic components of the first set of robotic componentstowards the target location.
 14. The machine-readable medium of claim13, wherein operations to activate the motor include operations to senda control signal to cause the motor to turn a screw of the first roboticcomponent, the screw turning causing an air bladder to inflate, the airbladder inflation causing a membrane to extend to push on the surface.15. The machine-readable medium of claim 13, wherein before activatingthe motor, the instructions, when executed, cause the processingcircuitry to determine that a collision would not be caused byactivating the motor of the first robotic component.
 16. Themachine-readable medium of claim 13, wherein operations to receive thetarget location include operations to receive location instructions viacommunications circuitry of the robotic system and use an internalcoordinate system to identify the target location.
 17. Themachine-readable medium of claim 13, wherein the instructions, whenexecuted, cause the processing circuitry to: capture images usingcameras of the plurality of independently moveable components of anobject while the robotic system traverses a loop around the object toreach the target location; and generate a three-dimensional model of theobject using the captured images.
 18. The machine-readable medium ofclaim 13, wherein the instructions, when executed, cause the processingcircuitry to: capture images of an environment of the robotic systemusing cameras of the plurality of independently moveable componentswhile the robotic system moves to the target location; and generate adepth image of a portion of the environment.
 19. The machine-readablemedium of claim 13, wherein the target location is located on a movingobject, and wherein the instructions, when executed, further cause theprocessing circuitry to sequentially activate motors of the plurality ofindependently moveable components to follow the moving object.
 20. Themachine-readable medium of claim 13, wherein the first robotic componentincludes a hexagonal surface initially in contact with the surface,wherein the one of the two other robotic components includes apentagonal surface initially in contact with the surface, wherein theprocessing circuitry is located in a core of the robotic system, andwherein the first robotic component is configured to removably couplewith the core.
 21. The machine-readable medium of claim 13, whereinoperations to determine the first robotic component to activate includeoperations to: identify a second set of robotic components of theplurality of independently moveable components, each of the second setof robotic components being adjacent to two components of the first setof robotic components; determine a reference component from the secondset of three components that is closest to the target location using theinformation captured by the first camera, the reference component beingadjacent to a second and a third components of the first set of roboticcomponents; and wherein the second and the third components form theaxis.
 22. The machine-readable medium of claim 21, wherein the referencecomponent includes the first camera.
 23. The machine-readable medium ofclaim 21, wherein after the robotic system moves, the referencecomponent is in contact with the surface.
 24. The machine-readablemedium of claim 13, wherein operations to determine the first roboticcomponent to activate include operations to use a distance from a pointon each of the first robotic component and the two other roboticcomponents to the target location, and select the first roboticcomponent based on the first robotic component corresponding to ashortest distance to the target location.
 25. An autonomous roboticsystem comprising: a frame; a core device including processing circuitryand memory including instructions that when executed by the processingcircuitry, cause the processing circuitry to determine distances to atarget location; and a plurality of robotic components that arephysically and communicatively coupled to the core device, the pluralityof robotic components independently moveable and including a firstrobotic component to: activate, based on a determination that the firstrobotic component corresponds to a shortest distance among roboticcomponents of the plurality of robotic components in contact with asurface, a motor of the first robotic component to push against thesurface to cause the autonomous robotic system to pivot about an axisformed by two other robotic components of the plurality of roboticcomponents towards the target location.